<template>
	<view class="charts-box">
		<qiun-data-charts type="line" :opts="opts" :canvas2d="true" :chartData="chartData" />
	</view>
</template>

<script>
	import {
		environmentmonthLine
	} from '@/api/ring.js'
	export default {
		props: ['yearMonth'],
		data() {
			return {
				chartData: {},
				//您可以通过修改 config-ucharts.js 文件中下标为 ['line'] 的节点来配置全局默认参数，如都是默认参数，此处可以不传 opts 。实际应用过程中 opts 只需传入与全局默认参数中不一致的【某一个属性】即可实现同类型的图表显示不同的样式，达到页面简洁的需求。
				opts: {
					color: ["#91CB74", "#1890FF", "#9A60B4", "#FAC858"],
					padding: [0, 10, 15, 15],
					enableScroll: true,
					dataLabel: false,
					legend: {
						show:true,
						position:'top',
						lineHeight: 20
					},
					xAxis: {
						disableGrid: true,
						scrollShow: true,
						itemCount: 5
					},
					yAxis: {
						gridType: "dash",
						dashLength: 2
					},
					extra: {
						line: {
							type: "straight",
							width: 2,
							activeType: "hollow"
						}
					}
				}
			};
		},
		mounted() {
			this.getServerData();
		},
		watch: {
			yearMonth() {
				this.getServerData();
			}
		},
		methods: {
			getServerData() {
				let categories = []
				environmentmonthLine(this.yearMonth).then(res => {
					const result = this.processEnvironmentData(res.data);
					this.chartData = JSON.parse(JSON.stringify(result));
				})
			},
			processEnvironmentData(data) {
				const categories = data.map(item => {
					let day = item.day
					return day.slice(0, -1)
				})
				const series = [{
						name: 'PM10',
						data: data.map(item => item.pm10)
					},
					{
						name: 'PM25',
						data: data.map(item => item.pm25)
					},
					{
						name: '噪音',
						data: data.map(item => item.noise)
					},
					{
						name: '湿度',
						data: data.map(item => item.humidity)
					}
				];

				return {
					categories,
					series
				};
			}
		}
	};
</script>

<style scoped>
	/* 请根据实际需求修改父元素尺寸，组件自动识别宽高 */
	.charts-box {
		width: 95%;
		height: 400rpx;
	}
</style>